#ifndef STRUCTURE_H
#define STRUCTURE_H
#include <header.h>

/**
 * @brief 进程池中进程的状态
*/
enum{
    BUSY,
    FREE
};

/**
 * 进程信息
*/
typedef struct proc_status_s{
    pid_t pid;
    int status;
    int local_socket_fd;
    
}proc_status_t;

// 按照个数初始化进程池
int initPool(proc_status_t *list, int num);

// 初始化socket
int initSocket(int *socket_fd, char *ip, char *port);

// 添加epoll监听
int addEpoll(int epoll_fd, int fd);

// 定义一个正在工作的子进程的函数
int sonProcMain(int local_socket);

// 把主进程监听到的net_fd选择一个子进程处理
int toSon(int net_fd, proc_status_t *list, int num);

// 本地socket发送文件相关信息
int localNetFdSend(int net_fd, int flag, int local_socket_fd);

// 本地socket获得socket对象信息
int localNetFdRecv(int *net_fd, int *flag, int local_socket_fd);

// 文件传输函数
int sendFile(int net_fd);
#endif